package cn.csq.array;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

/**
 * @author <a href="mailto:csq02198031@alibaba-inc.com">chengshanqing</a>
 * @date 2025/8/4 15:17
 */
public class ArrayTest1 {

    public static void main(String[] args) {
        int[] numbers = new int[100];
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = new Random().nextInt(100);
        }
        // 排序

        System.out.println("numbers = " + Arrays.toString(numbers));
        // 两数之和
        // 原始思路：从第一个值开始遍历固定住，去遍历剩下的值看结果是否满足条件。长度n n@2 n*n-1
        // 如果数组是递增，可以二分
        int[] ints = twoSum(numbers, 100);
        System.out.println("ints = " + Arrays.toString(ints));

    }

    public static int[] twoSum(int[] numbers, int target) {
        int i = 0;
        int j = numbers.length - 1;
        while (i < j && numbers[i] + numbers[j] != target) {
            // 和小于目标，左指针右移动
            if (numbers[i] + numbers[j] < target) {
                i++;
            } else {
                // 如果大于目标值j--
                j--;
            }
        }
        return new int[]{i, j};
    }



}

